
/*
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef PARSE_H
#define PARSE_H 1

#define TYS_EDGE 257
#define TYS_NODE 258
#define TYS_SETTINGS 259
#define TYS_SUBGRAPH 260
#define TYS_STRING 261
#define TYS_VOID 262
#define TYS_GRAPH 263
#define TYS_LABEL 264
#define TYS_COLOR 265
#define TYS_STRICT 266
#define TYS_DIGRAPH 267
#define TYS_STYLE 268
#define TYS_FOLDED 269
#define TYS_XML 270
#define TYS_TEXTCOLOR 271
#define TYS_TEXTSLANT 272
#define TYS_TEXTWEIGHT 273
#define TYS_FONTSIZE 274
#define TYS_FONTNAME 275
#define TYS_SHAPE 276

/* graph viz dot keywords */
#define DOT_STRICT 300
#define DOT_GRAPH 301
#define DOT_DIGRAPH 302
#define DOT_STRING 303
#define DOT_ID 304
#define DOT_NUM 305
#define DOT_OVERLAP 306
#define DOT_TRUE 307
#define DOT_FALSE 308
#define DOT_COLOR 309
#define DOT_FILLCOLOR 310
#define DOT_LABEL 311
#define DOT_STYLE 312
#define DOT_LABELJUST 313
#define DOT_PENWIDTH 314
#define DOT_SUBGRAPH 315
#define DOT_UEDGE 316
#define DOT_DEDGE 317
#define DOT_SHAPE 318
#define DOT_MDIAMOND 319
#define DOT_RECORD 320
#define DOT_FILLED 321
#define DOT_WHITE 322
#define DOT_LIGHTBLUE 323
#define DOT_LIGHTGREY 324
#define DOT_LIGHTPINK 325
#define DOT_DOTTED 326
#define DOT_BLACK 327
#define DOT_GREEN 328
#define DOT_BLUE 329
#define DOT_RED 330
#define DOT_CONSTRAINT 331
#define DOT_WEIGHT 332
#define DOT_DASHED 333
#define DOT_SOLID 334
#define DOT_NORMAL 335
#define DOT_INVIS 336
#define DOT_NODEDEFAULT 337
#define DOT_EDGEDEFAULT 338

extern int parse (char *fname, FILE *fstream);
extern char *parsererrorstring (void);
extern char *laststring;
extern char *lastid;
extern char *lastnum;
extern char *yytext;
extern int yylex (void);
extern FILE *yyin;
extern int yy_flex_debug;
extern void tyslexreset (void);
extern void tyslexinit (FILE *f);
extern int tyslex_lineno (void);

extern FILE *dotin;
extern int dot_flex_debug;
extern void dotlexreset (void);
extern void dotlexinit (FILE *f);
extern int dotlex (void);
extern int dotlex_lineno (void);

#endif

/* End */
